#pragma once

#include<iostream>
#include<cassert>
#include<cerrno>
#include<cstring>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include<string>
#include <unistd.h>


#define NAMED_PID "/home/zjj/Linux/25_3_12/mypipe" //管道文件的地址

bool createFifo(const std::string &path) //创建管道
{
    umask(0);
    int n = mkfifo(path.c_str(),0666);//c_str() 返回一个 C 风格字符串（const char*）
    if(n == 0)
    {
        return true;
    }
    else
    {
        std::cout << "errno: "<< errno << "err string: " << strerror(errno) << std::endl;
        //strerror(errno) 是 C/C++ 中用于将错误代码（errno）转换为可读的错误消息字符串的函数。它定义在 <cstring>（C++）或 <string.h>（C）头文件中。
        return false;
    }
}

void removeFifo(const std::string &path)//管道使用完之后进行删除
{
    int n = unlink(path.c_str());
    assert(n == 0);
    (void)n;
}